package com.ruoyi.base.mapper;

import java.util.List;
import com.ruoyi.base.domain.BaseCatalog;
import org.apache.ibatis.annotations.Param;

/**
 * 数据目录Mapper接口
 * 
 * @author yepanpan
 * @date 2025-02-12
 */
public interface BaseCatalogMapper 
{
    /**
     * 查询数据目录
     * 
     * @param id 数据目录主键
     * @return 数据目录
     */
    public BaseCatalog selectBaseCatalogById(Long id);

    /**
     * 查询数据目录
     *
     * @param code 数据目录代码
     * @return 数据目录
     */
    public BaseCatalog selectBaseCatalogByCode(String code);

    /**
     * 查询数据目录列表
     * 
     * @param baseCatalog 数据目录
     * @return 数据目录集合
     */
    public List<BaseCatalog> selectBaseCatalogList(BaseCatalog baseCatalog);

    /**
     * 查询下级数据目录
     *
     * @param id 数据目录主键
     * @return 数据目录
     */
    public List<BaseCatalog> selectChildrenById(Long id);

    /**
     * 新增数据目录
     * 
     * @param baseCatalog 数据目录
     * @return 结果
     */
    public int insertBaseCatalog(BaseCatalog baseCatalog);

    /**
     * 修改数据目录
     * 
     * @param baseCatalog 数据目录
     * @return 结果
     */
    public int updateBaseCatalog(BaseCatalog baseCatalog);

    /**
     * 修改子元素关系
     *
     * @param catas 子元素
     * @return 结果
     */
    public int updateChildren(@Param("catas") List<BaseCatalog> catas);

    /**
     * 查询分类能不能删除，有资产就不能删除
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int checkBaseCatalogDelete(Long[] ids);

    /**
     * 删除数据目录
     * 
     * @param id 数据目录主键
     * @return 结果
     */
    public int deleteBaseCatalogById(Long id);

    /**
     * 批量删除数据目录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBaseCatalogByIds(Long[] ids);
}
